/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package elaborate.h2x.parser;

import javax.xml.namespace.QName;
import org.w3c.dom.Node;

/**
 *
 * @author lendle
 */
public class QNameUtil {

    public static QName string2QName(String qNameString) {
        int index = qNameString.lastIndexOf("}");
        if (index != -1) {
            int index2 = qNameString.indexOf("{");
            String namespaceURI = qNameString.substring(index2 + 1, index);
            String localName = qNameString.substring(index + 1);
            return new QName(namespaceURI, localName);
        } else {
            return new QName(qNameString);
        }
    }

    public static QName getQName(Node node) {
        if (node.getNodeType() == Node.ELEMENT_NODE || node.getNodeType() == Node.ATTRIBUTE_NODE) {
            return new QName(node.getNamespaceURI(), node.getLocalName());
        } else {
            return null;
        }
    }

    public static String getQNameString(Node node){
        if(node.getNodeType()==Node.ELEMENT_NODE){
            return "{"+((node.getNamespaceURI()!=null)?(node.getNamespaceURI()):(""))+"}"+node.getLocalName();
        }else if(node.getNodeType()==Node.ATTRIBUTE_NODE){
            return "@{"+((node.getNamespaceURI()!=null)?(node.getNamespaceURI()):(""))+"}"+node.getLocalName();
        }else if(node.getNodeType()==Node.TEXT_NODE){
            return "text()";
        }else{
            return null;
        }
    }
}
